package logica;

import java.util.List;

import logica.persistencia.AtributoSimplePersistente;
import memento.IMemento;
import memento.MementoAtributoSimpleLogico;
public class AtributoSimple extends Atributo {

	private String tipo;
	
	public AtributoSimple(String nombre) throws SinNombreException
	{
		super(nombre);
		
		this.setTipo(ConstantesTipo.ATRIBUTO_TIPO_CARACTERIZACION);
	}
	
	public AtributoSimple(String nombre, String tipo) throws SinNombreException
	{
		super(nombre);
		
		this.setTipo(tipo);
	}
	
	public AtributoSimple(String nombre, int cardMin, int cardMax) throws SinNombreException
	{
		this(nombre);
		this.setCardinalidadMin(cardMin);
		this.setCardinalidadMin(cardMax);
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public String getTipo() {
		return tipo;
	}

	@Override
	public void agregarAtributo(Atributo atributo) throws AtributoSimpleException {
		throw new AtributoSimpleException();		
	}

	@Override
	public void agregarAtributos(List<Atributo> atributos) throws AtributoSimpleException {
		throw new AtributoSimpleException();
	}

	@Override
	public List<Atributo> getAtributos() throws AtributoSimpleException {
		throw new AtributoSimpleException();
	}

	public AtributoSimplePersistente getAtributoPersistente() {
		return new AtributoSimplePersistente(this);
	}

	@Override
	public IMemento getMementoEspecializado() {
		return new MementoAtributoSimpleLogico(this);
	}
	
}
